1. Field of the Invention
The present invention relates in general to computers, and more particularly to a method, system, and computer program product for managing modified metadata in a storage controller cache pursuant to a recovery action by a processor in communication with a memory device.
2. Description of the Related Art
Storage devices such as disks are commonplace in today's society. Devices such as controllers control access to the storage devices in response to read and write requests. The storage controllers also mirror data to different storage devices and spread data amongst different storage devices for redundancy and backup purposes. Storage controllers may store data in accordance with one of several redundant array of independent disk (RAID) security levels. Generally, the higher the RAID level the greater the redundancy of the data storage. Pooled storage devices may be used to increase storage capacity and provide recovery and backup services.
Storage servers, such as an IBM® Enterprise Storage Server® (ESS), are also becoming commonplace. One IBM® ESS storage server includes two clusters of processors and associated hardware. Typically, there are four storage controllers in each cluster. Each of the storage controllers controls multiple storage devices grouped in RAID arrays. In one environment, clients with Fiber Channel Host Bus Adapters (“HBAs”) are coupled via a Fiber Channel to a switch. The switch is also coupled to the Storage Server with Fiber Channel HBAs. There may be multiple storage servers per client. Each client is assigned or allocated storage “volumes” which are mapped to physical locations on storage devices that are grouped in RAID arrays. Consequently, clients make data access requests (reads and writes) to the storage server, for data within their allocated volumes, and the storage server accesses the mapped locations in cache storage to satisfy the requests or from disk if the data does not reside in cache storage.
One IBM® ESS comprises two clusters of storage controllers with four storage controllers per cluster. Each cluster has its own cache (semiconductor) memory and non-volatile storage (NVS) which is not shared across the clusters. In addition, each storage controller has its own cache (disk) storage. The cache memory is used for rapid access to data inpaged from external storage to service read data access requests from memory and to provide buffering of modified data. All update requests are written to the associated cluster and backed up by the NVS on the mirrored cluster.
In many storage controllers, such as the storage controllers described above, metadata is retained to describe the location and properties of customer data over which the storage controller is responsible. This metadata may be cached in the cache memory described above for faster performance of the storage controller. In certain situations, all cached modified metadata needs to be destaged to disk before a storage action is complete. Such actions include failback and initialization of metadata. In some of these cases, a large amount of modified metadata may slow destage of associated customer data to disk. These cases may become particularly acute in the event of a storage recovery operation (such as failback), where a large amount of data is moved. In such a recovery operation the original, unmodified metadata (to be replaced by the modified metadata) must be invalidated. Metadata invalidation in these cases may take a longer period of time than is desired. As a result, storage performance may be negatively impacted.